If the widget isn't drawable anyway, just return;
If the widget needs an allocate, print a warning, since it indicates a
problem in the widget workflow (e.g. forgot to size_allocate a child
widget).
This maches the previous checks in gtk_widget_draw (with the same
problems).
double opacity;
cairo_rectangle_int_t offset_clip;
- if (_gtk_widget_get_alloc_needed (widget))
+ if (!_gtk_widget_is_drawable (widget))
return;
+ if (_gtk_widget_get_alloc_needed (widget))
+ {
+ g_warning ("Trying to snapshot %s %p without a current allocation", G_OBJECT_TYPE_NAME (widget), widget);
+ return;
+ }
+
priv = widget->priv;
offset_clip = priv->clip;
offset_clip.x -= priv->allocation.x;